import os
# AI配置 - 统一并提升，确保完整输出与稳定性
AI_CONFIG = {
    'timeout': int(os.getenv('AI_TIMEOUT', '120')),
    'base_timeout': int(os.getenv('AI_BASE_TIMEOUT', '120')),
    'connection_timeout': int(os.getenv('AI_CONNECTION_TIMEOUT', '60')),
    'read_timeout': int(os.getenv('AI_READ_TIMEOUT', '240')),
    'max_tokens_batch': int(os.getenv('AI_MAX_TOKENS_BATCH', '3500')),
    'max_tokens_summary': int(os.getenv('AI_MAX_TOKENS_SUMMARY', '4000')),
    'max_prompt_length': int(os.getenv('AI_MAX_PROMPT_LENGTH', '4000')),
    'max_summary_context_length': int(os.getenv('AI_MAX_SUMMARY_CONTEXT_LENGTH', '250')),
    'max_content_length': int(os.getenv('AI_MAX_CONTENT_LENGTH', '140')),
    'max_retries': int(os.getenv('AI_MAX_RETRIES', '3')),
    'batch_size': int(os.getenv('AI_BATCH_SIZE', '15')),
    'max_batches': int(os.getenv('AI_MAX_BATCHES', '20')),
    'retry_delay': int(os.getenv('AI_RETRY_DELAY', '5')),
    'batch_wait_time': int(os.getenv('AI_BATCH_WAIT_TIME', '3')),
    'api_key': os.getenv('SILICONFLOW_API_KEY', ''),
    'api_url': os.getenv('SILICONFLOW_API_URL', 'https://api.siliconflow.cn/v1/chat/completions'),
    'model_name': os.getenv('SILICONFLOW_MODEL', 'Qwen/Qwen3-8B'),
    'small_data_threshold': int(os.getenv('AI_SMALL_DATA_THRESHOLD', '10')),
    'medium_data_threshold': int(os.getenv('AI_MEDIUM_DATA_THRESHOLD', '50')),
    'max_filter_records': int(os.getenv('AI_MAX_FILTER_RECORDS', '50')),
    'temperature_optimized': float(os.getenv('AI_TEMPERATURE', '0.1')),
}

# 模型配置 - 优化稳定性
MODEL_CONFIG = {
    'temperature': float(os.getenv('MODEL_TEMPERATURE', '0.1')),  # 降低温度提高速度
    'max_tokens': int(os.getenv('MODEL_MAX_TOKENS', '1500')),  # 减少输出长度，提高速度
    'connection_timeout': int(os.getenv('MODEL_CONN_TIMEOUT', '10')),  # 减少连接超时
    'read_timeout_multiplier': float(os.getenv('MODEL_READ_TIMEOUT_MULTIPLIER', '1.0')),  # 减少读取超时倍数
}

# 数据处理配置
DATA_CONFIG = {
    'max_records_per_batch': int(os.getenv('DATA_MAX_RECORDS_PER_BATCH', '50')),  # 减少批次记录数
    'max_summary_length': int(os.getenv('DATA_MAX_SUMMARY_LENGTH', '100')),  # 减少摘要长度
    # 兼容 app.py 中使用到的配置键
    'upload_folder': os.getenv('UPLOAD_FOLDER', '../uploads'),
    'allowed_extensions': ['xlsx', 'xls'],
    'max_file_size': int(os.getenv('MAX_CONTENT_LENGTH', str(500 * 1024 * 1024))),
}
# 新增：Redis、限流与连接池
REDIS_CONFIG = {
    'host': os.getenv('REDIS_HOST', '127.0.0.1'),
    'port': int(os.getenv('REDIS_PORT', '6379')),
    'db': int(os.getenv('REDIS_DB', '0')),
    'password': os.getenv('REDIS_PASSWORD', ''),
    'queue_name': os.getenv('RQ_QUEUE', 'jobs'),
    'result_ttl': int(os.getenv('RQ_RESULT_TTL', '3600')),  # 1小时
}
RATE_LIMITS = {
    'default': os.getenv('RATE_LIMIT_DEFAULT', '200/minute'),  # 提高默认限流
    'burst': os.getenv('RATE_LIMIT_BURST', '50/second'),     # 提高突发限流
}
REQUESTS_POOL = {
    'pool_maxsize': int(os.getenv('REQUESTS_POOL_MAXSIZE', '100')),   # 增加连接池大小
    'max_retries': int(os.getenv('REQUESTS_MAX_RETRIES', '2')),      # 减少重试次数到2次
}
